package com.ruoyi.loan.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.loan.domain.CustomerInfo;
import com.ruoyi.loan.domain.reponse.CustomerFollowResponse;
import com.ruoyi.loan.domain.reponse.CustomerInfoResponse;
import com.ruoyi.loan.domain.request.CustomerInfoRequest;
import com.ruoyi.loan.domain.request.CustomerRequest;

import java.util.List;

/**
 * 客户Service接口
 *
 * @author ruoyi
 * @date 2023-03-18
 */
public interface ICustomerInfoService extends IService<CustomerInfo> {

    List<CustomerInfoResponse> getList(CustomerInfoRequest request);

    void edit(CustomerInfo customerInfo);

    void dealCustomerInfoType(LambdaQueryWrapper<CustomerInfo> wrapper, Integer type);

    void followCustomer(CustomerRequest request);

    void followRemind(CustomerRequest request);

    void followRepayment(CustomerRequest request);

    void claimCustomer(CustomerRequest request);

    void distCustomer(CustomerRequest request);

    void publicDist(CustomerRequest request);

    void stateToLoan(CustomerRequest request);

    void distLoan(CustomerRequest request);

    void backLoan(CustomerRequest request);

    void publicLoan(CustomerRequest request);

    void stateToAfter(CustomerRequest request);

    void distAfter(CustomerRequest request);

    void backAfter(CustomerRequest request);

    void publicAfter(CustomerRequest request);

    CustomerFollowResponse getMessageTotal();

    void backCustomerSnapshot(CustomerRequest request);
}
